package session

import (
	"context"
	"net/http"

	"github.com/gorilla/sessions"
	"github.com/rbcervilla/redisstore/v8"

	"forum/pkg/model/redis"
)

var defaultStore *redisstore.RedisStore

func InitSessionsRedisStore() error {
	client, err := redis.NewRedisClient()
	if err != nil {
		return err
	}

	store, err := redisstore.NewRedisStore(context.Background(), client)
	if err != nil {
		return err
	}

	store.Options(sessions.Options{
		Path:   "/",
		MaxAge: 86400,
	})

	defaultStore = store
	return nil
}

func GetSession(r *http.Request) (*sessions.Session, error) {
	return defaultStore.Get(r, "forum")
}
